import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/**
* Ezen osztaly felelos a palya bejarhatosagaert. Tartalmazza az osszes Cella objektumot.
* Ennek segitsegevel lehet vegiglepkedni a cellakon.
*/




public class Palya
{
    public ArrayList cellak;
	
    public Palya() {
    	cellak = new ArrayList();
    	Szkeleton.Message("Palya letrehozva..");
    }

	/**
	*inicializalas
	*/
	public void beolvas1(){		
	Szkeleton.Start("Palya", "beolvas");
    	
    	
    	Cella c1 = new Cella();
		Cella c2 = new Cella();
		Cella c3 = new Cella();
		cellak.add(c1);
		cellak.add(c2);
		cellak.add(c3);
		
		c1.setJobb(c2);
		c2.setBal(c1);
		c2.setJobb(c3);
		c3.setBal(c2);
			
		Szkeleton.Finish("Palya", "beolvas");
		}
	/**
	*kincskereso leptetese
	*/
    public void beolvas2(){
	
		Szkeleton.Start("Palya", "beolvas");
		Kincskereso kk = new Kincskereso();
    	Szkeleton.kk = kk;
    	
    	Cella c1 = new Cella();
		Cella c2 = new Cella(kk);
		Cella c3 = new Cella();
		Cella c4 = new Cella();
		Cella c5 = new Cella();
		cellak.add(c1);
		cellak.add(c2);
		cellak.add(c3);
		cellak.add(c4);
		cellak.add(c5);
		
		c1.setJobb(c2);
		c2.setBal(c1);
		c2.setJobb(c3);
		c2.setFelso(c4);
		c2.setAlso(c5);
		c3.setBal(c2);
		c5.setFelso(c2);
		c4.setAlso(c2);
			
		Szkeleton.Finish("Palya", "beolvas");
		}
	/**
	*kincskereso gyemanttal utkozik
	*/
    public void beolvas3()
    {
    	Szkeleton.Start("Palya", "beolvas");
    	
    	Kincskereso kk = new Kincskereso();
    	Szkeleton.kk = kk;
    	Gyemant gy = new Gyemant();
    	
    	Cella c1 = new Cella(kk);
		Cella c2 = new Cella(gy);
		cellak.add(c1);
		cellak.add(c2);
		
		c1.setJobb(c2);
		c2.setBal(c1);
			
		Szkeleton.Finish("Palya", "beolvas");
    }
	/**
	*kincskereso kiasatlan folddel utkozik
	*/

	public void beolvas4(){
	
		Szkeleton.Start("Palya", "beolvas");
    	
	    	Kincskereso kk = new Kincskereso();
	    	Szkeleton.kk = kk;
			Fold f = new Fold();
	    	
	    	Cella c1 = new Cella(kk);
			Cella c2 = new Cella(f);
			cellak.add(c1);
			cellak.add(c2);
			
			c1.setJobb(c2);
			c2.setBal(c1);
			
		Szkeleton.Finish("Palya", "beolvas");
	}
	/**
	*kincskereso kiasatlan sziklaval utkozik
	*/
    public void beolvas5(){
		Szkeleton.Start("Palya", "beolvas");
    	
	    	Kincskereso kk = new Kincskereso();
	    	Szkeleton.kk = kk;
			Szikla sz = new Szikla();
	    	
	    	Cella c1 = new Cella(kk);
			Cella c2 = new Cella(sz);
			Cella c3 = new Cella();
			cellak.add(c1);
			cellak.add(c2);
			cellak.add(c3);
			
			c1.setJobb(c2);
			c2.setBal(c1);
			c2.setJobb(c3);
			c3.setBal(c1);
			
		Szkeleton.Finish("Palya", "beolvas");
	}
	/**
	*kincskereso buta lennyel utkozik
	*/
    public void beolvas6(){
	Szkeleton.Start("Palya", "beolvas");
    	
    	Kincskereso kk = new Kincskereso();
    	Szkeleton.kk = kk;
    	Buta bu = new Buta();
    	
    	Cella c1 = new Cella(kk);
		Cella c2 = new Cella(bu);
		cellak.add(c1);
		cellak.add(c2);
		
		c1.setJobb(c2);
		c2.setBal(c1);
			
		Szkeleton.Finish("Palya", "beolvas");
	}
	/**
	*kincskereso uldozo lennyel utkozik
	*/
    public void beolvas7(){
	Szkeleton.Start("Palya", "beolvas");
    	
	    	Kincskereso kk = new Kincskereso();
	    	Szkeleton.kk = kk;
			Uldozo u = new Uldozo();
	    	
	    	Cella c1 = new Cella(kk);
			Cella c2 = new Cella(u);
			Cella c3 = new Cella();
			cellak.add(c1);
			cellak.add(c2);
			cellak.add(c3);
			
			c1.setJobb(c2);
			c2.setBal(c1);
			c2.setJobb(c3);
			c3.setBal(c1);
			
		Szkeleton.Finish("Palya", "beolvas");
	}
	/**
	*kincskereso amobaval utkozik
	*/
    public void beolvas8(){
	Szkeleton.Start("Palya", "beolvas");
    	
	    	Kincskereso kk = new Kincskereso();
	    	Szkeleton.kk = kk;
			Amoba a = new Amoba();
	    	
	    	Cella c1 = new Cella(kk);
			Cella c2 = new Cella(a);
			Cella c3 = new Cella();
			cellak.add(c1);
			cellak.add(c2);
			cellak.add(c3);
			
			c1.setJobb(c2);
			c2.setBal(c1);
			c2.setJobb(c3);
			c3.setBal(c1);
			
		Szkeleton.Finish("Palya", "beolvas");
	}
	/**
	*kincskereso felveszi a bombat
	*/
	public void beolvas9(){
	
    	Szkeleton.Start("Palya", "beolvas");
    	
    	Kincskereso kk = new Kincskereso();
    	Szkeleton.kk = kk;
    	Bomba b = new Bomba();
    	
    	Cella c1 = new Cella(kk);
		Cella c2 = new Cella(b);
		Cella c3 = new Cella();
		cellak.add(c1);
		cellak.add(c2);
		cellak.add(c3);
			
		c1.setJobb(c2);
		c2.setBal(c1);
		c2.setJobb(c3);
		c3.setBal(c1);
			
		Szkeleton.Finish("Palya", "beolvas");
	}


	
    /**
	*Vegiglep a cellakon.
	*/
    public void vegiglep()
    {
    	Szkeleton.Start("Palya", "vegiglep");
    	ListIterator i = cellak.listIterator();
    	while(i.hasNext()) {
    		((Cella)i.next()).Lekerdez();
    	}
    	Szkeleton.Finish("Palya", "vegiglep");
    }
}
